package 笔记.集合;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Vector;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * @author chenhailong
 * @ClassName: List
 * @Description: 集合 线程安全
 * @date 2021/8/28 10:08
 * @Version 1.0
 */
public class MyList {

    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList();
        arrayList.add("线程不安全，从集合末尾开始添加数据");

        Vector vector = new Vector();
        vector.add("线程安全，接口都实现了synchronized锁，但是效率低");
        vector.add(11);
        vector.add(new boolean[]{});

        // 解决方案一
        List<Object> objects = Collections.synchronizedList(new ArrayList<>());
        objects.add(" ，包括map、set集合等等");

        // 解决方案二
        List<Object> copyOnWriteArrayList = new CopyOnWriteArrayList<>();
        copyOnWriteArrayList.add("查看源码发现用了Lock锁，同时用了volatile关键字线程共享");



    }

}
